Sring Cloud Nacos

By youfang

Nacos

安装完成后地址:http://127.0.0.1:8848/nacos/index.html

使用Mysql数据源(建议不使用)

spring.datasource.platform=mysql
db.num=1
db.url.0=jdbc:mysql://127.0.0.1:3306/nacos_config?characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useUnicode=true&useSSL=false&serverTimezone=UTC
db.user=root
db.password=root123

注意事项

  1. Nacos0.7版本加入了支持mysql数据源功能,nacos集群的配置可以持久化到mysql。在使用mysql8.0.19的时候用nacos连接出现异常。

解决办法:在nacos安装目录下新建plugins/mysql文件夹,并放入8.0+版本的mysql-connector-java-8.0.xx.jar,重启nacos即可。
启动时会提示更换了mysql的driver-class类。

使用总结

SpringCloud的@RefreshScope注解,可以实现配置的实时同步。

而:spring cloud config 中,比较麻烦,需要通过BUS

Linux中

  1. 上传后解压。
  2. 单机模式运行:[root@acyou bin]# ./startup.sh -m standalone
  3. 访问:http://81.68.103.201:8848/nacos/index.html#/login

集群部署

集群部署手册

  • 修改application.properties中的端口

  • 修改cluster.conf集群配置文件

  • 运行集群(在集群模式下,使用内置数据源)。.\startup.cmd -p embedded

  • 运行集群(在集群模式下,使用外置数据源)。.\startup.cmd

  • 切换运行模式(Stand-alone mode 是单机模式,启动时指定参数):.\startup.cmd -m standalone

  • 集群部署的时候,需要使用Nginx做负载均衡与容灾。

  • nginx.conf:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    #NACOS NGINX配置
    upstream nacosserver{
    server 192.168.1.95:8848;
    server 192.168.1.95:8849;
    server 192.168.1.95:8850;
    }
    server{
    listen 8855;
    server_name localhost;
    location / {
    root html;
    index index.html index.htm;
    }
    location /nacos/ {
    proxy_pass http://nacosserver/nacos/;
    }
    }

配置中心

  1. 配置管理->配置列表->添加
    demo1101.properties

SpringBoot

  1. 配置Nacos的验证,vi nacos/conf/application.properties
    1
    2
    3
    ### If turn on auth system:
    nacos.core.auth.enabled=true

  2. 需要配置到bootstrap.properties文件中。
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    spring.application.name=service-demo11011

    # Nacos
    ## 启用NACOS
    spring.cloud.nacos.discovery.enabled=true
    ## 设置服务所处的分组
    spring.cloud.nacos.discovery.group=DEMO_GROUP
    ## 给当前的服务命名,默认:${spring.application.name}
    spring.cloud.nacos.discovery.service=${spring.application.name}
    ## Nacos Server 启动监听的ip地址和端口
    spring.cloud.nacos.discovery.server-addr=81.68.103.201:8848
    ## 服务的权重。- 取值范围 1 到 100,数值越大,权重越大
    spring.cloud.nacos.discovery.weight=1
    ## 命名空间。- 常用场景之一是不同环境的注册的区分隔离,例如开发测试环境和生产环境的资源(如配置、服务)隔离等。
    spring.cloud.nacos.discovery.namespace=DEMO_NAMESPACE
    ## 当要上阿里云时,阿里云上面的一个云账号名
    #spring.cloud.nacos.discovery.access-key=xx
    ## 当要上阿里云时,阿里云上面的一个云账号密码
    #spring.cloud.nacos.discovery.secret-key=
    ## 是否开启Nacos Watch
    spring.cloud.nacos.discovery.watch.enabled=true
    ## 如果您只想订阅,但不想注册您的服务,请将其设置为 false。
    spring.cloud.nacos.discovery.register-enabled=true
    ## Nacos账号
    spring.cloud.nacos.username=nacos
    ## Nacos密码
    spring.cloud.nacos.password=nacos123

    spring.cloud.nacos.config.enabled=true
    spring.cloud.nacos.config.server-addr=81.68.103.201:8848